1. Technical Field
The present invention relates generally to an improved data processing system. More specifically, the present invention is directed to an improved system and method for validating chip configuration data.
2. Description of Related Art
In modern microprocessors or systems-on-a-chip, configuration data is shifted into the processor units on-chip upon initialization, such as from an external storage device. The configuration data is shifted to all the on-chip processor units to provide initial settings for configuration latches in the design.
Shifting of the configuration data occurs at a predefined safe period of the initialization process. Once the data has been shifted into the on-chip microprocessor units, it cannot be verified by a single entity without disrupting the operation of the microprocessor.
Typically, cyclical redundancy checking (CRC) code values are used to ensure the accuracy of the configuration data being shifted into the processor units of the microprocessor. CRC is an error checking technique for ensuring the accuracy of digital data in which the data is divided into predetermined lengths which, used as dividends, are divided by a fixed divisor. The remainder of the calculation is appended onto the data being shifted into the microprocessor. At the receiving end, i.e. at the microprocessor, the remainder is calculated. If the calculated remainder does not match the remainder provided to the microprocessor with the configuration data, an error is detected.
CRC validation leaves a possibility for tampering. That is, unauthorized configuration data may be generated for shifting into the microprocessor which may result in the same CRC code, i.e. CRC remainder. Thus, it is conceivable that a microprocessor or system-on-a-chip (SoC) may become corrupted by unauthorized configuration data being shifted into microprocessor or SoC even though CRC validation is utilized.